Анализ результатов А/B тестирования

Наша задача — провести оценку результатов A/B-теста. В вашем распоряжении есть датасет с действиями пользователей, техническое задание и несколько вспомогательных датасетов.

Необходимо:

Чтобы оценить корректность проведения теста, нужно проверить:

Техническое задание и описание данных

Техническое задание

Описание данных

ab_project_marketing_events.csv — календарь маркетинговых событий на 2020 год.

Структура файла:

final_ab_new_users.csv — пользователи, зарегистрировавшиеся с 7 по 21 декабря 2020 года.

Структура файла:

final_ab_events.csv — действия новых пользователей в период с 7 декабря 2020 по 4 января 2021 года.

Структура файла:

final_ab_participants.csv — таблица участников тестов.

Структура файла:

Загрузка данных

Оценим количество пропусков в events['details']

В таблице events имеем большое количество пропусков (порядка 86%) в столбце details. Данное поле несет в себе информацию о стоимости покупки и заполнено только для события purchase. Т.е. пропуски абсолютно естественны.

Таким образом пропуски можно классифицировать MNAR (Missing Not At Random / Отсутствует не случайно) — пропуски зависят от данных, их нельзя отбрасывать, т.к. это приведёт к заметным искажениям

Для дальнейшей работы потребуется изменение типов данных в следующих столбцах:

Вывод

На данном шаге познакомились с данными:

Оценка корректности теста

Проверка корректности ТЗ

Проверим корректность ТЗ, есть ли у нас в наличии данные для того, чтобы его выполнить

Данные об искомом тесте recommender_system_test присутствуют 6 701 запись, разделение на группы в тесте также есть.

Далее проверим даты записей в таблице с данными о новых пользователях.

Даты регистрации в таблице с новыми пользователями соответствуют ТЗ (чуть больше на два дня, но тем не менее)

Записи в таблице с событиями завершаются датой 30-12-2020. Это не хорошо, ведь у нас не все пользователи будут иметь возможность совершать события в первые 14 дней после регистрации. Теоретически это может негативно сказаться на результатах теста.

Количество новых пользователей из Европы достаточно для соответствия ТЗ (более 6000)

Более подробно оценим данные в следующих шагах пока можно предварительно отметить:

В целом необходимые данные присутствуют, но не в идеальном виде. В частности, недостает записей о событиях после 30.12.2020, . Плюс мы еще не проверили возможные пересечения групп, где мы можем потерять еще записи. А после этого нужно проверить сколько пользователей реально участвовала в тесте.

Время проведения

Проверим время и географию проведения маркетинговых компаний и сравним со временем проведения нашего теста. По условию задачи набор новых пользователей проводился с 07.12.2020 по 21.12.2020 и ориентирован на регион EU, окончен тест был 04.01.2021.

Можно отметить не самое удачное время проведения теста в предверии новогодних праздников, т.к. в это время покупательская активность сезонно увеличивается.

Во время набора новых пользователей не было пересечения с маркетинговыми акциями. Однако до завершения теста имеем пересечение с одной промоакцией Christmas&New Year Promo, проводимой в том числе в Европе с 25 декабря 2020 по 3 января 2021.

Такого рода акция могла существенно повлиять на решении совершить покупку клиентом и на остальные ключевые метрики конверсии.

Не станем избавляться от данных за это время, но и не будем забывать об этой накладке

Проверка аудитории теста

Проверим нет ли у нас пользователей попавших в оба теста одновременно.

Получаем 1 602 пользователя участвовавших в обоих тестах. Сказать какой из тестов повлиял на их решение мы не можем, поэтому оставлять информацию о них в данных нельзя, это может исказить результаты.

Теперь проверим нет ли пользователей, участвующих в двух группах одновременно

Отлично, таких пересечений не выявлено.

Также уберем из данных записи о interface_eu_test, т.к. для нашей работы они нам не нужны.

Остались записи только 5 099 пользователях.

Проверим сколько пользователей у нас попали в каждую из групп.

Имеется перекос по разделению пользователей на группы. В группе A пользователей больше. В идеале пользователи должны быть разделены по группам поровну. Различие составляет около 7% от общего размера данных.

Далее посмотрим сколько пользователей все - таки участвовали в тесте, т.е. совершали какие-либо действия.

Всего 2 788, т.е. гораздо меньше чем ожидалось в ТЗ.

Теперь итоговая проверка разделения на группы, в которой будут только те пользователи, которые участвовали в тесте.

Если посмотреть на пользователей групп A и B которые реально участвовали в тесте (совершали какие-либо действия), то перекос в сторону группы A становится уже огромным 75% на 25%.

Вывод

На данном шаге проверили корректность теста. Были выявлены пересечения с другим тестом. Записи о пользователях попавших в оба теста пришло удалить.

Кроме этого, при проверке данных о тесте представленных для анализа выявлены серьезные проблемы, в частности:

Таким образом, дальнейший анализ результатов теста нужно воспринимать скептически. Делать из него серьезных выводов нельзя.

Исследовательский анализ данных EDA

Распределение количества событий на пользователя

Посмотрим сколько в среднем событий приходится на одного пользователя в каждой из групп

События распределены схоже но неравномерно, т.к. в группе А гораздо больше пользователей

Распределение числа событий по дням

Посмотрим на распределение числа событий по дням для каждой из групп.

Чтобы попробовать объяснить этот всплеск, посмотрим на количество пользователей зарегестрировавшихся и попавших в группу А в период с 13 по 21 декабря

Получается 1311 пользователей из 2082 зарегистрировались в этот промежуток времени. Т.е. больше половины. Похоже резкий всплеск связан с этим.

Если бы в этот промежуток времени пользователи распределялись между группами более равномерно, то у нас бы не было такого перекоса между группами.

Кроме того, что - то не так с данными за 29-30 декабря. Либо тест по какой - то причине закончили раньше, либо имеет место сбой при сборе данных.

Явно имеем технические проблемы при распределении пользователей и вероятно при сборе информации

Изменение конверсии в воронке

На этом шаге оценим сколько пользователей "терялись" при переходе от одного шага к другому. Вначале для всех, а затем в разрезе по группам.

Только 63 % от всех залогинившихся пользователей посмотрели страницу продукта и около 30% совершили покупку. При этом судя по данным для покупки вовсе не обязательно добавлять товар в корзину.

Визуализируем наши расчеты.

Теперь построим гарфик для иллюстрации конверсии при переходе от одного шага к другому, но уже в разрезе групп A/B.

Для начала соберем информацию о количетсве пользователей дошедших до каждого из шагов в группах A/B

Количество пользователей на каждом шаге в табличном виде.

Теперь переходим к графику.

В первую очередь на "пирамиде" бросатеся в глаза неравномерное распределение пользователей между группами.

Вывод

В целом воронка выглядит естественно.За исключением шагов "корзина" и "покупка". Вероятно, на сайте реализована возможность покупки без добавления в корзину, но при такой реализации мы не можем однозначно выделить долю пользователей добавивших товар в корзину, но не совершивших покупку.

Также стоит отметить, что показатель конверсии оставляет желать лучшего, т.к. на каждом шаге у на отсеивается порядка половины пользователей.

В таком представлении воронка действительно лучше иллюстрирует некорректность теста и в целом и в обоих гурппах. Анлизировать конверсию между product_page -> product_cart, product_cart -> purchase или даже product_page -> purchase, если уж корзина не обязательна, на этих данных невозможно. Т.к. нельзя однозначно сказать какое действие после product_page совершил пользователь.

Оценка результатов A/B тестирования

Конверсия

Изучим кумулятивную конверсию по значимым событиям для каждой из групп. Для это вначале опишем функции по сбору кумулятивных данных и построению графиков.

взглянув на график, можем отметить следующее:

теперь опишем график кумулятивной конверсии просмотра корзины:

Для показателя кумулятивной конверсии покупок наблюдается в целом схожая тенденция:

Относительное изменение кумулятивной конверсии

Согласно ТЗ ожидается увеличение не менее чем на 10% каждой из метрик:

Чтобы оценить изменения построим графики относительного изменениея конверсий группы В к группе А на каждом из шагов.

Схожую ситуацию наблюдаем и по относительному показателю просмотров корзины:

С покупками уже ожидаемо картина аналогична, необольшая разница только в датах, когда начало происходить снижение:

Статистическая разница долей

Оценим статистическую значимость разницы среднего количества пользователей, совершивших значимые действия product_cart, product_page, purchase. Согласно условию задачи, для проверки будем использовать z-критерий.

Опишем функция для проверки статистической разницы долей z-критерием.

Теперь сформулируем гипотезы. Под значимым событием понимаются действия product_cart, product_page, purchase.

$\begin{equation*} \begin{cases} H_0 :\text{Среднее количество пользователей совершивших значимое событие в группах A и B равно}\\ H_1 :\text{Среднее количество пользователей совершивших значимое событие в группах A и B различается} \end{cases} \end{equation*}$

Вывод

На данном шаге мы построили кумулятивные графики конверсий и подробно описали их.

В целом относительные метрики показывают провальные результаты теста, целевые значения в группе B не только не увеличились на искомые 10% относительно А, а наоборот ухудшились.

Касаемо относительной конверсии по всем ключевым событиям можно сказать следующее:

Наблюдается статистическая разница долей групп А и B для события product_page. Для остальных событий статистической разницы не обнаружено.

Необходимо выяснить что поризошло на сайте 29-30 декабря. Похоже, что проходили какие - то обновления связанные с корзиной и покупкой, как следствие группа А перестала видеть корзину, такого рода изменения могли сказаться на конверсии в группах и дополнительно исказить результаты теста

Общий вывод

Проведя исследование, можно дать рекомендацию о том, что тест необходимо продолжить . Однако следует увеличить количество пользователей в группе B.

Несмотря на то, что все целевые показатели в группе В не только не увеличились, а наоборот ухудшились относительно группы А, однозначно утверждать, что тест неудачен нельзя. Показатели разнились долгое время и окончательное утверждение группы А в качестве лидера по конверсии всех показателей произошло только в районе 20-22 декабря, когда в эту группу влили большое количество новых пользователей.

В случае принятия решения о продлении тестирования по его завершении дополнительно следует изучить данные о среднем чеке и ключевые метрики в разрезе устройств. Это может полезно, однако в рамках данного исследования такая задача не ставилась.

На сегодняшний день можно дополнительно дать следующие рекомендации:

Данные:

Рекомендации:

Конверсия:

Рекомендации:

Нужно подумать о "клиентском пути" на сайте, дополнительно проанализировать действия и время нахождения клиента на сайте. Довольно странно, что авторизовавшись половина клиентов даже не посмотрела товар. Возможно есть технические проблемы в целом или проблемы на каких - то устройствах.